package day02;

public class demo {
    public static void main(String[] args) {
    /*
1. 变量的练习：
   - 声明一个变量，一次声明多个变量.
   - 声明变量直接初始化，先声明变量，而后再给变量初始化。
   - 声明整型变量g，声明另一个整型变量h并赋值为g+10，输出变量h的值。

   - 在g本身基础之上增10，输出变量g的值。
   - 声明一些正确的和错误的变量名。
     /*
        int a;
        int b,c,d;
        int e=1;
        int e1;
        e1=1;
        int g=10;
        int h=g+10;
        System.out.println(h);

        g=g+10;
        System.out.println(g);
       // int a1=3.14;//左右类型不一致
        //int a2=111111111111111;//超出int的取值范围
        //byte a3=3333;//类型不一致,整数默认为int类型

     */

        /*
        2. 基本数据类型的练习：int
   - 声明初始化两个以上整数变量，并且输出两个整数变量的除法结果
   - 声明两个很大的变量，然后相加，输出运算结果，测试运算溢出现象
         */
        /*
        int a=9;
        int b=2;
        System.out.println(a-b);

        int a1=1000000000;
        int b2=2000000000;
        System.out.println(a1+b2);

         */

        /*
        3. 基本数据类型的练习：long
   - 声明初始化两个以上的长整型变量
   - 声明变量存储几个较大数据的运算，演示：若有可能溢出建议将L设计在第1个数字后。
        long a=100L;
        long b=200L;
        long c=10000000000000L;
        long d=c+b+a;
        System.out.println(d);
          */

        /*
        4. 基本数据类型的练习：double

   - 声明初始化两个以上的浮点型变量
   - 声明几个浮点型变量并将它们做数学操作，演示double运算的舍入误差问题

        double a=3.14;
        double b=3.2;
        double c=2.3;
        double e=3.7;
        System.out.println(b-c);//0.9000000000000004
        System.out.println(a-b);//-0.06000000000000005
        System.out.println(e-b);//0.5

         */

        /*
        5. 基本数据类型的练习：boolean

   - 声明初始化两个以上的布尔型变量

        boolean a=2>3;
        boolean a1=3>2;
        System.out.println(a);
        System.out.println(a1);

         */

        /*
        6. 基本数据类型的练习：char

   - 声明初始化五个以上的字符型变量
   - 声明字符型变量，演示转义符
        char a='你';
        char a1='1';
        char a2='_';
        char a3='$';
        char a4=' ';
        char a5=',';
        char a6='\'';
        char a7='\\';
        //char类型,单引号里面的必须且一定要有一个字符
        //特殊符号要用一个\

         */

        /*
        7. 基本数据类型的转换：两种方式

   - 声明几个变量，演示自动类型转换和强制类型转换的语法
   - 声明一个较大类型的长整型变量，演示强转可能会发生的溢出问题
   - 声明一个较大精度的浮点型变量，演示强转可能会发生的丢失精度问题
    //bouble>false>long>int>char>short>byte
        //强转可能会导致精度丢失
        byte a=1;
        byte a1=3;
        int a2=20;
        long a3=300L;
        int a4=(int) a3;//大转小,强制类型转换
        long a5=a2;//小转大,自动类型转换
        long b=10000000000L;
        int c=(int) b;
        System.out.println(c);//强转会导致溢出

        double d=3.14;
        int d1=(int) d;//强转会导致精度丢失
        System.out.println(d1);

         */
        /*
        8. 基本数据类型的转换：两点规则

   - 声明两个byte型变量b1和b2，并赋值为直接量
   - 声明一个byte型变量，并赋值为b1与b2的和
         */
        byte b1=1;
        byte b2=2;
        byte c=(byte)(b1+b2);
        //因为byte,char,short在计算时,会自动转为int类型,所以大类型转小类型时,需要强转
    }
}
